package item

import (
	"clockIn/internal/dao"
	"clockIn/internal/model/entity"
	"clockIn/internal/model/input"
	"clockIn/internal/service"
	"context"
)

type sItem struct{}

func init() {
	service.RegisterItem(New())
}

func New() *sItem {
	return &sItem{}
}

func (s *sItem) List(ctx context.Context) (List []*entity.Item) {
	List = make([]*entity.Item, 0)
	err := dao.Item.Ctx(ctx).Scan(&List)
	if err != nil {
		return nil
	}
	return
}

func (s *sItem) Edit(ctx context.Context, in *input.ItemCreateModel) (err error) {
	if in.Id > 0 {
		_, err = dao.Item.Ctx(ctx).Where("id", in.Id).Data(in).Update()
		return
	}
	_, err = dao.Item.Ctx(ctx).Data(in).Insert()
	return
}

func (s *sItem) Delete(ctx context.Context, id int64) (err error) {
	_, err = dao.Item.Ctx(ctx).Where("id", id).Delete()
	return
}
